package com.hanamaki.homework.lesson;

import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.Scanner;

public class Demo05 {

    public static void get_day() {

        Scanner scanner = new Scanner(System.in);

        String answer = "是";
        while (answer.equals("是")) {
            System.out.println("请输入年份：");
            int y = scanner.nextInt();

            /* 判断年份 是否满足要求 */
            if (y <= 0 || y > (Integer.parseInt(new SimpleDateFormat("yyyy").format(new Date())) + 100)) {
                System.out.println("您输入的年份有误!(年份必须大于0),并且年份不能超过当年之后的100年！");
                System.out.println("请重新输入年份!");
                /* 如果年份出现问题  跳出循环 */
                continue;
            }

            System.out.println("请输入月份");
            int m = scanner.nextInt();
            /* 判断 月份  如果 正确就继续 输入信息 */

            boolean flag = true;
            while (flag) {
                if (m < 1 || m > 12) {
                    System.out.println("您输入的月份有误!(月份范围为1-12)");
                    System.out.println("请重新输入正确的月份：");
                    /* 为 月份重新 赋值 */
                    m = scanner.nextInt();
                    continue;
                } else {
                    flag = false;
                }
            }

            /* 定义一个 汇总天数的  变量 */
            int day = 0;
            switch (m) {
                case 2:
                    day = 28;
                    if (y % 4 == 0 && y % 100 != 0 || y % 400 == 0) {
                        day++;
                    }
                    break;
                case 4:
                case 6:
                case 9:
                case 11:
                    day = 30;
                    break;
                default:
                    day = 31;
            }

            System.out.println(y + "年" + m + "月，一共有" + day + "天");
            System.out.println("是否要再次查询？(是、否)");
            answer = scanner.next();
        }

    }


    public static void main(String[] args) {

        get_day();

    }

}
